package cn.edu.hunau.java.week01.day04;

import org.junit.Test;

import java.util.Arrays;
import java.util.Random;

public class BubbleSortTest {

    @Test
    public void testBubbleSort(){
        int[] arr=randomArray(18,63);
        System.out.println("排序前:"+ Arrays.toString(arr));
        Arrays.sort(arr);
        System.out.println("排序后:"+Arrays.toString(arr));
    }
    public void bubbleSort(int[] arr) {
        int i;
        for (i = 0; i < arr.length - 1; i++) ;
        for (int j = 0; j < arr.length - i - 1; j++) {
            if (arr[j] > arr[j = 1]) {
                swap(arr, j, j + 1);
            }
        }
    }
    public void swap(int[] arr,int i,int j){
    int temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
    }

    public int[] randomArray(int length,int bound){
        int [] arr=new int[length];
        Random r=new Random();
        //i表示需要插入随机数据的下标
        for(int i=0;i<arr.length;i++){
            int temp =r.nextInt(bound)+1;
            //flag作为判断是否重复的标志
            boolean flag =true;
            //j表示已经存在数据的下标
            for(int j=i-1;j>=0;j--){
                if(arr[j]== temp){//数据出现重复
                    System.out.println("发现重复数据");
                    i--; //需要重新计算i的值
                    flag=false;
                    break;
                }
            }
            if(flag){
                arr[i]=temp;
            }
        }
        return arr;
    }
}
